import java.util.Scanner;

/**
 * JAVASE第三节课的作业、上课代码
 */


public class Video3 {

    public static void main(String[] args) {

        //作业：
        //1.编写程序数一下 1到 100 的所有整数中出现多少个数字9
        //产生1~100
        //出现9的情况和判断

       /* 自己写

       int count = 0;
        int num = 1;

        while(num <= 100){

            if(num % 10 == 0){//判断9的情况

                count++;

                if(num / 10 == 9){

                    count++;

                }

            } else if (num / 10 == 9) {

                count++;//出现1~100

            }

            num++;

        }

        System.out.println("9的个数为："+count);
*/



        /*更简单的，答案
        int i = 0;
        int count = 0;

        for(i = 1;i <= 100;i++){

            //计算个位上9的个数
            if(i % 10 == 9){
                count++;
            }
            //计算十位上9的个数
            if (i / 10 == 9) {
                count++;
            }

        }
        System.out.println("1到100的所有整数中，出现数字9的个数为："+ count);*/


        //2.给定一个数字，判定一个数字是否是素数
        /*方法一，判断2到num之间有没有能被num整除的数(如果一个数字是素数，那么就只能整除1和自己本身)
        int num;
        Scanner sc = new Scanner(System.in);//这里写的是sc。Scanner是数据类型，sc是变量名

        System.out.println("请输入一个数（大于等于2）");
        num = sc.nextInt();//和上边保持一致，sc
        //num = in.nextInt();



            //
        int i = 2;
        while(i < num){

            if(num % i == 0){

                System.out.println("不是素数");
                break;

            }

        }
        if(i >= num){

            System.out.println("是素数");

        }*/

        /*方法二
        //若num不是素数，必定有a*b=num，其中a<num/2
        //(任何一个数字n，都可以写成 n = a*b的形式。那么必然会有一个数字是小于等于2/n的。)
        int num;
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个整数（大于等于2）");
        num = sc.nextInt();

        int i = 2;

        while(i <= num/2){

            if (num % i == 0){

                System.out.println("是素数");
                break;
            }
            i++;



        }
        if(i > num/2){
            System.out.println("不是素数");
        }*/


        /*
        //方法三
        //任何一个正整数都可写成n=a*b的形式，如果n不是素数，必定有a或b小于等于根号n
        int num;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个整数（大于等于2）");
        num = sc.nextInt();

        int i = 2;
        while (i <= Math.sqrt(num)) {

            if (num % i == 0){

                //
                System.out.println("不是素数");
                break;

            }
            i++;


        }
        if(i > Math.sqrt(num)){

            System.out.println("是素数");

        }*/

        /*3.
        //求2个整数的最大公约数
        //思路：
        //最大公约数：即两个数据中公共约数的最大者。
        //
        //求解的方式比较多，暴力穷举、辗转相除法、更相减损法、Stein算法算法
        //
        //此处主要介绍：辗转相除法

        //a < b ，  令c = a % b，  a=b，b=c,   直至c==0,此时b中的内容即为两个数中的最大公约数。
        //例子：18和24的最大公约数
        //
        //第一次：a = 18,b = 24,c = a%b = 18%24 = 18
        //
        //循环中：a = 24,b=18
        //
        //第二次：a = 24,b = 18,c = a%b = 24%18 = 6
        //
        //循环中：a = 18,b = 6
        //
        //第三次：a = 18,b = 6,c=a%b = 18%6 = 0
        //
        //循环结束
        //
        //
        //此时b中的内容即为两个数中的最大公约数。
        int x,y;
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入两个正整数");

        x = sc.nextInt();
        y = sc.nextInt();
        int z = 0;

        if(x > y){

            int c = x;
            x = y;
            y = c;

        }
        while(true){



           z = x % y;


           if(z == 0){

               System.out.println("最大公约数为"+y);
               break;
           }
           x = y;
           y = z;



        }*/


       /* //4.
        // 计算1/1-1/2+1/3-1/4+1/5 …… + 1/99 - 1/100 的值    。
        int i = 1;//循环产生1~100的数
        double sum = 0;//求和的结果
        while(i <= 100){


            if(i % 2 == 1){

                sum = sum + 1.0/i;
                //(. 设置一个循环从1~100，给出表达式中的每一项：1.0/i, 注意此处不能使用1，否则结果全部为0)

            }else {

                sum = sum - 1.0/i;

            }

            i++;



        }
        System.out.println("求和结果为："+sum);*/


       /* //5.https://www.nowcoder.com/practice/83d6afe3018e44539c51265165806ee4
        //自己称之为：棋盘思想
        //假设i代表行，j代表列，当i==j 或者 i+j+1 == n，此时为星号。其余的都是空格。
        Scanner sc = new Scanner(System.in);

        int i = 0;
        int j = 0;

        while(sc.hasNext()){

            int n = sc.nextInt();


            for(i = 0;i < n;i++){

                for(j = 0;j < n;j++){

                    if(i == j){

                        System.out.print("*");

                    } else if (i + j + 1 == n) {

                        System.out.print("*");

                    }else {

                        System.out.print(" ");

                    }

                }
                System.out.println();


            }
            *//*if(i == ){

                System.out.println("*");
                
            } else if (i+j+1 == n) {
                
            }
*//*

        }*/

       /* //6.编写代码模拟三次密码输入的场景。
        // 最多能输入三次密码，密码正确，提示“登录成功”,密码错误， 可以重新输 入，最多输入三次。
        // 三次均错，则提示退出程序

        //本题注意考察，字符串怎么比较相同？使用方法equals。
        // 具体的原理会在String章节进行详细讲解。此处只是简单使用。


        Scanner sc = new Scanner(System.in);
        int count = 3;//计数还有几次机会

        while(count > 0){


            System.out.println("请输入密码：");
            String password = sc.nextLine();

            if(password.equals("abcd")){

                System.out.println("登陆成功");
                break;
            }else{

                count--;
                System.out.println("密码错误，还有"+count+"次机会");

            }

        }*/


       /* //7.输出n*n的乘法口诀表，n由用户输入。
        Scanner sc = new Scanner(System.in);
        int i = 0;
        int j = 0;

        for (i = 1; i <= 9; i++) {

            for (j = 1; j <= i; j++) {

                //System.out.print(j+'*'+i+'='+j*i+' ');
                System.out.print(j+"*"+i+"="+(i*j)+"\t");//\t就是一个制表符,用于在文本中插入一个空格，以便对齐文本
                                                         //作用范围是一次打印语句，而不是一行

            }
            //System.out.println();

        }*/




        /*//课件
        //敲一些不熟悉的代码
        int a = 0x1;
        int b = 0x2;
        System.out.println(a^b);
        System.out.printf("%x\n",a^b);//%x,十六进制打印
        //ok ,这里写完了，不是烂尾工程！！！！！*/









    }
}
